package com.minglead.crawler.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;

import java.util.Date;

/**
 * @author: clz
 * @date: 2024-06-05
 * @desc:entity 基类；包含通用字段 例如 id，创建时间、创建人、修改时间、修改人等信息
 * 类似：SuperCDBaseEntity
 */
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@Data
public class BaseEntity {

    /** 主键ID **/
    @TableId(value = "ID", type = IdType.ASSIGN_UUID)
    private String id;
    /** 创建时间 **/
    @JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    @TableField(value = "CREATOR_TIME", fill = FieldFill.INSERT)
    private Date creatorTime;
    /** 创建用户ID **/
    @TableField(value = "CREATOR_USER_ID", fill = FieldFill.INSERT)
    private String creatorUserId;


    /** 修改时间 **/
    @JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    @TableField(value = "LAST_MODIFY_TIME", fill = FieldFill.UPDATE)
    private Date lastModifyTime;
    /** 修改用户ID **/
    @TableField(value = "LAST_MODIFY_USER_ID", fill = FieldFill.UPDATE)
    private String lastModifyUserId;


    ///////////////////////////////创建人、最后修改人显示/////////////////////////////////
    @TableField(exist = false)
    private String creatorUserIdValue;

    @TableField(exist = false)
    private String lastModifyUserIdValue;

}
